package com.xiang.api.entity;

import java.util.List;

import lombok.Data;

@Data
public class Rule {
  /** 是否或关系 "and" | "or" | 1 | 0 | null | boolean */
  public char or = 0;
  /** 字段(被比较值) */
  public String field = "";
  /** 比较关系 */
  public String logic = "";
  /** 比较值(由于ts自身问题,当逻辑类型为having时, 数组第二个数据的数据类型只能通过显示定义才能约束) */
  public String value = "";
  /** 子逻辑关系 */
  public List<Rule> children;

  public char setOr(Object p) {
    String s = p.toString().toLowerCase();
    if (s.equals("or") || s.equals("1") || s.equals("true")) {
      this.or = 1;
    } else if (p instanceof Boolean && ((Boolean) p)) {
      this.or = 1;
    } else {
      this.or = 0;
    }
    return this.or;
  }
}
